import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;

public class demo {

//    年会抽奖▲▲▲▲
//今年公司年会的奖品特别给力，但获奖的规矩却很奇葩：
//1. 首先，所有人员都将一张写有自己名字的字条放入抽奖箱中；
//2. 待所有字条加入完毕，每人从箱中取一个字条；
//3. 如果抽到的字条上写的就是自己的名字，那么“恭喜你，中奖了！”
//现在告诉你参加晚会的人数，请你计算有多少概率会出现无人获奖？
//    输入描述:
//输入包含多组数据，每组数据包含一个正整数n（2≤n≤20）。参加晚会n人
//    输出描述:
//对应每一组数据，以“xx.xx%”的格式输出发生无人获奖的概率。



//解这道题，我们需要明白什么时候才算做都不获奖？全部都不获奖的概率如何计算？
//对于什么时候才算做都不获奖，当然是所有人都拿到了别人的名字，没有拿到自己的名字。
//全部都不获奖的概率必定是由 n个人都拿错的情况种数 除 n个人拿出的所有排列情况数。n个人拿出的所有排列情况数显然是n的阶乘。
//
//假设a的名字没有被a拿到，其他n - 1个人都有可能拿到，即有n - 1种情况。假设b拿到了a的名字，那么对于b的名字有两种情况，
//第一种是b的名字被a拿到了，也就是a、b互相拿到了对方的名字，那么对于其他n - 2个人互相拿错又是一个子问题f(n - 2).
//第二种是b的名字没有被a拿到，则剩下的问题是子问题f(n - 1).
//因此可得递推公式f(n) = (n - 1) * (f(n - 1) + f(n - 2)).
//
//最终得出公式n人都不获奖的概率h(n) = (n - 1) * (f(n - 1) + f(n - 2)) / (n!).


    public static void main1(String[] args) {
//        arr[n]数组表示无人获奖的排列组合的人数

        // 错排
        long[] arr = new long[21];
        arr[1] = 0;
        arr[2] = 1;//只有两种情况      有人中奖 或者无人中奖   无人中奖为组合为1
        for (int i=3; i<21; i++) {
            arr[i] = (i-1)*(arr[i-1]+arr[i-2]);
        }

        // 阶乘
        long[] count = new long[21];
        count[1] = 1;
        for (int i=2; i<21; i++) {
            count[i] = count[i-1]*i;
        }

        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNextInt()) {
            int n = scanner.nextInt();
            // 发生无人获奖的概率 = 无人获奖的排列个数/总的排列个数
            System.out.printf("%.2f%%\n", 100.0*arr[n]/count[n]);
        }
    }










//    抄送列表▲▲▲
//NowCoder每天要处理许多邮件，但他并不是在收件人列表中，有时候只是被抄送。他认为这些抄送的邮件重要性比自己在收件人列表里的邮件低，
//因此他要过滤掉这些次要的邮件，优先处理重要的邮件。现在给你一串抄送列表，请你判断目标用户是否在抄送列表中。
//    输入描述:
//输入有多组数据，每组数据有两行。
//第一行抄送列表，姓名之间用一个逗号隔开。如果姓名中包含空格或逗号，则姓名包含在双引号里。总长度不超过512个字符。
//第二行只包含一个姓名，是待查找的用户的名字（姓名要完全匹配）。长度不超过16个字符。
//    输出描述:
//如果第二行的名字出现在收件人列表中，则输出“Ignore”，表示这封邮件不重要；否则，输出“Important!”，表示这封邮件需要被优先处理。
//
//    输入
//Joe,Kewell,Leon
//Joe
//"Letendre, Bruce",Joe,"Quan, William"
//William
//    输出
//Ignore
//Important!


    //    Set<>有 contain方法   LinkList没有
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNextLine()) {
            // str 一串字符串
            String str = scanner.nextLine();
            // 在str中寻找name
            String name = scanner.nextLine();

            // 存放str中的每个名字
            Set<String> set = new HashSet<>();
            int start = 0;
            int end = 0;
            while (start < str.length()) {
                // 遇到"
                if (str.charAt(start) == '\"') {
                    // 从指定的索引处开始，返回第一次出现的指定子字符串在此字符串中的索引。
                    end = str.indexOf('\"', start+1);
                    set.add(str.substring(start+1, end));
                    start = end + 2;//因为要跳过" 和 ,  两个字符
                }else { // 没遇到"
                    end = str.indexOf(',', start+1);
                    if (end == -1) {
                        set.add(str.substring(start));
                        break;//▲▲▲重点 这里要记得退出循环 因为已经判断到最后一个字符了
                    }else {
                        set.add(str.substring(start, end));
                    }
                    start = end + 1;//这里要跳过,  一个字符
                }
            }
            if (set.contains(name)) {
                System.out.println("Ignore");
            }else {
                System.out.println("Important!");
            }
        }
    }
}

